package ccxz.biz.application.util;

import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class SymptomUtil {

    public static boolean nanKe(Collection<String> result, String symptom) {
        // 组合1
        if (symptom.contains("早泄") || symptom.contains("时间短") || symptom.contains("遗精") || symptom.contains("射") || symptom.contains("手淫") || symptom.contains("龟头")
                || symptom.contains("阳痿") || symptom.contains("勃") || symptom.contains("硬度") || symptom.contains("疲软") || symptom.contains("阴茎")
                || symptom.contains("男科") || symptom.contains("房事") || symptom.contains("性欲") || symptom.contains("壮阳") || symptom.contains("补肾") || symptom.contains("肾虚") || symptom.contains("肾亏")
        ) {
            result.add("川续断sg");
            result.add("覆盆子sg");
            result.add("五味子sg");
            result.add("小茴香sg");
            result.add("杜仲sg");
            result.add("枸杞子sg");
            result.add("菟丝子sg");
            result.add("金樱子肉sg");
            result.add("补骨脂sg");
            result.add("生地黄sg");
            result.add("肉桂sg");
            result.add("女贞子sg");
            result.add("墨旱莲sg");
            result.add("盐益智仁sg");
            result.add("桑椹sg");
            result.add("茯苓sg");
            result.add("芡实sg");
            result.add("桑螵蛸sg");
            result.add("海螵蛸sg");
            result.add("莲子sg");
            result.add("山药sg");
            result.add("黄精sg");
            result.add("龟甲sg");
            result.add("制何首乌sg");
            result.add("熟地黄sg");
            result.add("龙眼肉sg");
            result.add("当归sg");
            result.add("龙胆草sg");
            result.add("北柴胡sg");
            result.add("牡蛎sg");
            result.add("制远志sg");
            result.add("淫羊藿sg");
            result.add("肉苁蓉片sg");
            result.add("盐巴戟天sg");
            result.add("锁阳sg");
            return true;
        }
        return false;
    }

    public static boolean fuKe(Collection<String> result, String symptom) {
        // 组合1
        if (symptom.contains("月经") || symptom.contains("例假") || symptom.contains("姨妈") || symptom.contains("经期") || symptom.contains("宫寒") || symptom.contains("妇科")
                || symptom.contains("宫颈") || symptom.contains("阴道") || symptom.contains("乳") || symptom.contains("白带")
                || symptom.contains("丰胸")) {

            result.add("川芎sg");
            result.add("郁金sg");
            result.add("丹参sg");
            result.add("红花sg");
            result.add("桃仁sg");
            result.add("当归sg");
            result.add("牛膝sg");
            result.add("鸡血藤sg");
            result.add("干益母草sg");
            result.add("艾叶sg");
            result.add("续断片sg");
            result.add("白芍sg");
            result.add("女贞子sg");
            result.add("生地黄sg");
            result.add("熟地黄sg");
            result.add("党参sg");
            result.add("黄芪sg");
            result.add("白术sg");
            result.add("菟丝子sg");
            result.add("大枣sg");
            result.add("百合sg");
            result.add("麦冬sg");
            result.add("墨旱莲sg");
            result.add("龙眼肉sg");
            result.add("醋甘遂sg");
            result.add("桑白皮sg");
            result.add("老鹳草sg");
            result.add("青蒿sg");
            result.add("木瓜sg");
            return true;
        }
        return false;
    }

    public static boolean anShen(Collection<String> result, String symptom) {
        // 组合1
        if (symptom.contains("失眠") || symptom.contains("睡不着") || symptom.contains("易醒") || symptom.contains("梦")
                || symptom.contains("精神") || symptom.contains("怒") || symptom.contains("燥") || symptom.contains("生气") || symptom.contains("记忆") || symptom.contains("烦") || symptom.contains("脾气")
                || symptom.contains("脱发") || symptom.contains("白发") || symptom.contains("眼睛")
        ) {

            result.add("制远志sg");
            result.add("龙骨sg");
            result.add("牡蛎sg");
            result.add("磁石sg");
            result.add("酸枣仁sg");
            result.add("柏子仁sg");
            result.add("合欢花sg");
            result.add("合欢皮sg");
            result.add("首乌藤sg");
            result.add("石决明sg");
            result.add("北柴胡sg");
            result.add("沉香sg");
            result.add("路路通sg");
            result.add("郁金sg");
            result.add("知母sg");
            result.add("栀子sg");
            result.add("黄连sg");
            result.add("龙胆sg");
            result.add("菊花sg");
            result.add("佛手sg");
            result.add("枳壳sg");
            result.add("制首乌sg");
            result.add("玉竹sg");
        }
        return !CollectionUtils.isEmpty(result);
    }

    public static boolean piWei(Collection<String> result, String symptom) {
        // 组合1
        if (symptom.contains("口干") || symptom.contains("口苦") || symptom.contains("口臭")
                || symptom.contains("尿频") || symptom.contains("尿急") || symptom.contains("尿不尽")
                || symptom.contains("糖尿") || symptom.contains("血糖")
                || symptom.contains("血压") || symptom.contains("头晕") || symptom.contains("脑胀")
                || symptom.contains("咳") || symptom.contains("喘") || symptom.contains("肺")
                || symptom.contains("湿") || symptom.contains("痒")
                || symptom.contains("汗")
                || symptom.contains("骨") || symptom.contains("腰")) {

            result.add("山药sg");
            result.add("白术sg");
            result.add("枳实sg");
            result.add("山楂sg");
            result.add("焦六神曲sg");
            result.add("麦芽sg");
            result.add("鸡内金sg");
            result.add("莱菔子sg");
            result.add("茯苓sg");
            result.add("白芍sg");
            result.add("干姜sg");
            result.add("高良姜sg");
            result.add("厚朴sg");
            result.add("砂仁sg");
            result.add("豆蔻sg");
            result.add("苍术sg");
            result.add("黄芩片sg");
            result.add("陈皮sg");
            result.add("广藿香sg");
            result.add("丁香sg");
            result.add("紫苏梗sg");
            result.add("竹茹sg");
            result.add("知母sg");
            result.add("麦冬sg");
            result.add("北沙参sg");
            result.add("青皮sg");
            result.add("木香sg");
            result.add("大黄sg");
            result.add("川楝子sg");
            result.add("大腹皮sg");
            result.add("香附sg");
            result.add("桑叶sg");
            result.add("天麻sg");
            result.add("大黄sg");
            result.add("姜半夏sg");
            result.add("紫苏叶sg");
            result.add("石斛sg");
            result.add("黄柏sg");
            result.add("瞿麦sg");
            result.add("苦参sg");
            result.add("龙骨sg");
            result.add("牡蛎1sg");
            result.add("独活sg");
            result.add("防风sg");
        }
        return !CollectionUtils.isEmpty(result);
    }


    public static List<String> randomSome(int size) {
        List<String> dict = new ArrayList<>();
        dict.add("三七sg");
        dict.add("人参sg");
        dict.add("茯苓sg");
        dict.add("山药sg");
        dict.add("当归sg");
        dict.add("川芎sg");
        dict.add("五味子sg");
        dict.add("炙甘草sg");
        dict.add("干姜sg");
        dict.add("车前子sg");
        dict.add("炒山桃仁sg");
        dict.add("黄连sg");
        dict.add("白术sg");
        dict.add("苍术sg");
        dict.add("红花sg");
        dict.add("桂枝sg");
        dict.add("肉桂sg");
        dict.add("茵陈sg");
        dict.add("浙贝母sg");
        dict.add("木通sg");
        dict.add("黄芪sg");
        dict.add("党参sg");
        dict.add("丹参sg");
        dict.add("熟地黄sg");
        dict.add("生地黄sg");
        dict.add("白芍sg");
        dict.add("绞股蓝sg");
        dict.add("赤芍sg");
        List<String> result = new ArrayList<>();

        int min = 0; // 最小值（包含）
        int max = dict.size(); // 最大值（不包含）
        List<Integer> numbers = new ArrayList<>();
        for (int i = min; i < max; i++) {
            numbers.add(i);
        }
        Collections.shuffle(numbers); // 打乱列表中元素的顺序

        List<Integer> randomNumbers = numbers.subList(0, size); // 获取前五个元素作为结果
        for (Integer index : randomNumbers) {
            result.add(dict.get(index));
        }
        return result;
    }

    public static void remove(List<String> result, int removeNum) {
        for (int i = 0; i < removeNum; i++) {
            result.remove(RandomUtil.index(result.size()));
        }
    }
}